<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../resources/common.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>

<script>
description("Tests generateKey() with bad AES-KW parameters.");
jsTestIsAsync = true;

extractable = true;
keyUsages = ['wrapKey', 'unwrapKey'];

function testNoLength()
{
    return expectFailure(
        "generateKey() without length...",
        crypto.subtle.generateKey({ name: 'aes-kw' }, extractable, keyUsages));
}

function testBigLength()
{
    return expectFailure(
        "generateKey() with a length of 70000...",
        crypto.subtle.generateKey({ name: 'aes-kw', length: 70000 }, extractable, keyUsages));
}

function testNegativeLength()
{
    return expectFailure(
        "generateKey() with a length of -3...",
        crypto.subtle.generateKey({ name: 'aes-kw', length: -3 }, extractable, keyUsages));
}

function testMinusInfinity()
{
    return expectFailure(
        "generateKey() with length that is minus Infinity...",
        crypto.subtle.generateKey({ name: 'aes-kw', length: -Infinity }, extractable, keyUsages));
}

Promise.resolve(null)
    .then(testNoLength)
    .then(testBigLength)
    .then(testNegativeLength)
    .then(testMinusInfinity)
    .then(finishJSTest, failAndFinishJSTest);

</script>

</body>
</html>
